package com.vegetable.modules.service.baseData;

import com.vegetable.common.utils.R;
import com.vegetable.modules.entity.baseData.CategoryDO;
import com.vegetable.modules.form.CategoryQuery;
import com.vegetable.modules.vo.CategoryDTO;
import com.vegetable.modules.vo.category.CategoryTreeDTO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 分类信息业务逻辑接口
 * </p>
 * @author Administrator
 */
@Service
public interface ICategoryService {

    /**
     * 新增分类
     *
     * @param categoryDO 分类信息
     * @return 操作结果
     */
    boolean addCategory(CategoryDO categoryDO);

    /**
     * 删除分类
     *
     * @param id 分类ID
     * @return 操作结果
     */
    int deleteCategory(Long id);

    /**
     * 修改分类
     *
     * @param categoryDO 分类信息
     * @return 操作结果
     */
    boolean updateCategory(CategoryDO categoryDO);

    /**
     * 查询分类列表
     * @param query 查询条件
     * @return 分类列表
     */
    List<CategoryDTO> getCategoryList(CategoryQuery query);

    /**
     * 查询单个分类详情
     * @param id 分类ID
     * @return 分类详情
     */
    CategoryDTO getCategoryById(Long id);


    List<CategoryTreeDTO> getCategoryTree();

    R  updateCategorySortOrder(Long id, Integer sortOrder);
}